Maneuverless passive range estimation using monocular image sequences

ABSTRACT

A method to estimate range to a moving rigid body from a moving platform using a monocular camera. The method does not require the camera platform to maneuver in order to estimate range. The method relies on identification and tracking of certain principal features of the object. The method extracts a silhouette of an object from an obtained image and identifies two principal linear components of the silhouette. A normalized distance between the point of intersection of the two linear components and a centroid of the silhouette is computed, compared to a data set and used to determine a direction of movement of the object.

DOMESTIC PRIORITY

This application claims the benefit of earlier filed U.S. Provisional Patent Application No. 61/465,295, filed Mar. 17, 2011, the entire contents of which is incorporated herein by reference.

GOVERNMENT LICENSE RIGHTS

This invention was made with government support under Air Force Contract No. FA8650-07-C-1200. The government has certain rights in the invention.

BACKGROUND

Estimating the range to a mobile object using a monocular camera fixed to a moving platform has, in general, remained an unsolved problem for the past three decades. An effective solution to this problem can be used in autonomous collision detection and avoidance applications for unmanned vehicles, especially unmanned aerial vehicles and surface vehicles. The technology can also be used to provide situational awareness information to manned air and water crafts moving in dynamic environments. In this disclosure, we present a novel approach to compute the range or distance to a dynamic object using a sequence of monocular images captured from a moving sensor platform. In what follows, we shall use the term “intruder” to describe the dynamic object whose range is to be estimated.

Depending on the sensor resolution, imaging sensors can provide very accurate estimates of the relative bearing angle to the intruder. At large distances, an intruder may occupy only a few pixels on an image. The classical approach is to treat the intruder as a point target and use bearing angle measurements to the tracked point. However, this approach is, in general, not sufficient due to the inherent unobservability of the intruder dynamics. We use an example to illustrate this problem.

Let us assume that the sensor platform is initially located at (0,0) in a two-dimensional plane and moves along the positive y-axis with velocity given by v_(s). Let us assume that the intruder initially located at (x₀, y₀) is moving with velocity (u, v) where u and v represent the X and Y components of the velocity. The position of the sensor at any time t is given by (0, v_(s)t). The position of the intruder at time t is given by (x₀+ut, y₀+vt). The bearing angle to the intruder as measured from the sensor at any given time is, therefore, given by arctan (y₀+(v−v_(s))t)/(x₀+ut). Now, let us assume there is another intruder located initially at (kx₀, ky₀) moving with velocity (ku, kv−(k−1)v_(s)), where k is a positive constant and not equal to 1. Now, notice that the relative bearing to the second intruder measured from the sensor at any time t is given by arctan (ky₀+(kv−(k−1)v_(s))t−v_(s)t)/(kx₀+kut) which is equal to arctan (ky₀+kvt−kv_(s)t)/(kx₀+kut)=arctan (y₀+(V−v_(s))t)/(x₀+ut). Therefore, two intruders with distinct trajectories (k≠1) generate the same bearing angle measurement at the sensor. This clearly illustrates the inherent observability problem present in bearing-only tracking Please refer to FIG. 1 for a specific example. In this case, (x₀, y₀)=(500,500), k=2, v_(s)=100, u=−50 and v=50. The sensor position is shown by red circles. The first intruder's position is represented by blue plus signs. The second intruder (position denoted by black asterisks) is moving with velocity equal to (−50k, 50k−(k−1)100)=(−100,0). The angles θ(0), θ(1) and θ(2) denote the relative bearing to the two intruders at time instants 0, 1 and 2. Notice that both intruders subtend the same relative bearing angles with respect to the sensor, but k≠1 signifying that the two intruder trajectories are distinct as can be seen in the figure.

The conditions of unobservability in a bearing-only tracking problem have been extensively studied since the late 1970's. This body of research has established that the intruder state is observable, in general, only if the order of sensor dynamics is greater than the intruder dynamics. For an intruder moving with constant velocity, this implies that the sensor dynamics must involve an acceleration component. In the event that the sensor dynamics are not of a higher order, the sensor platform must execute a deliberate maneuver involving a higher order dynamics component to be able to estimate the range. With the growing use of Unmanned Aerial Vehicles (UAVs) in recent years, such a “maneuver-based” approach has been proposed as a solution to the passive camera based Sense and Avoid (SAA) problem: upon detecting an intruder, the UAV maneuvers in order to triangulate and resolve the position of the intruder. However, a maneuver-based approach is undesirable in many ways especially in military operations. It may lead to waste of fuel, loss in mission performance, and is in general bad airmanship.

Other research deals with choosing the right coordinate frames and filters for bearings-only tracking from the point of view of stability and unbiasedness. For example, an Extended Kalman Filter (EKF) applied to bearings-only target tracking has been theoretically analyzed and has established the reasons for the filter bias and instability. A modified polar coordinate system based Kalman Filter has also been proposed to separate the observable and unobservable dynamics. Further, a bank of EKFs each with a different initial range estimate referred to as the range-parameterized (RP) tracker has been proposed and shown to perform better than classical EKF implementations. More recently, particle filter solutions to bearings-only tracking problem are receiving considerable attention and they have been implemented to track both maneuvering and non-maneuvering targets. Particle filter and RP EKF have been compared and it has been shown that the particle filter is only marginally better than the Range Parameterized EKF but is considerably more robust to errors in the initial target range.

This disclosure presents a novel passive image based ranging approach that does not require the sensor platform to maneuver. Analytical results prove that the approach can be used to estimate the range to an intruder without any sensor maneuver under very general conditions. Tests conducted on real flight-test data have demonstrated the practicality of the approach.

The invention in this disclosure concerns a novel method to estimate the range to a moving rigid body from a mobile platform using monocular passive cameras such as electro-optical or infra-red camera mounted on the platform. The primary application of the proposed technology is in the area of collision detection and avoidance for unmanned vehicles. Unmanned aerial, surface and ground vehicles equipped with cameras can use the proposed invention to estimate the range to other moving objects in their vicinity. The range information can then be used to determine the trajectory of the moving objects and maintain a safe distance from them.

Generally, in a computerized system including a camera mounted on a moving vehicle, wherein the camera acquires consecutively in real time a plurality of images of a moving object within a field of view of the camera, a method for determining a range of said moving object from said moving vehicle comprises the steps of:

(a) detecting the moving object (intruder) within each of said plurality of images;

(b) identifying two feature points p₁ and p₂ on said detected object where p₁ and p₂ satisfy a certain geometric relationship with the velocity vector of the detected object including but not limited to that the two feature points represent a leading point of the detected object and a trailing point of the detected object; and

(c) recursively calculating the range to the object based on changes in the positions of the feature points p₁ and p₂ in the sequential images and further based on the assumption that the geometric relationship mentioned under item (b), including but not limited to the assumption that the detected object is traveling in a direction along a line connecting feature points p₁ and p₂, is valid

The key aspect of the invention lies in the premise that if you can assume pure translational movement and assume a direction of motion based on the image, then you can recursively calculate the range without the order of sensor dynamics being greater than the intruder dynamics, i.e. without any extraneous maneuvering.

Accordingly, among the objects of the instant invention are: the provision of a maneuverless passive ranging method.

Another object of the invention is the provision of a ranging method which extracts feature points on a detected object and provides a geometric relationship between the spatial positions of the feature points and the direction of velocity of the object.

Other objects, features and advantages of the invention shall become apparent as the description thereof proceeds when considered in connection with the accompanying illustrative drawings.

DESCRIPTION OF THE DRAWINGS

In the drawings which illustrate the best mode presently contemplated for carrying out the present invention:

FIG. 1 is a graph showing the inherent observability problem present in bearing-only tracking;

FIG. 2 is an illustration of a moving sensor platform (unmanned aircraft) and a moving object (intruder) within the field of view of the camera mounted on the platform;

FIG. 3 is a schematic block diagram of a computer system in accordance with the invention;

FIG. 4 is an illustration of an image acquired by the camera and an associated silhouette extracted from the image (nose to tail orientation);

FIG. 5 is another illustration of an image acquired by the camera and an associated silhouette extracted from the image (wingtip to wingtip orientation);

FIG. 6 is a flowchart of an exemplary software implementation of the method of the present invention;

FIG. 7 is a flowchart of another exemplary software implementation of the method of the present invention;

FIG. 8 is a flowchart of a software implementation of a method of extracting a silhouette of the image and identifying the pixel locations i₁,j₁ and i₂,j₂ of feature points p₁,p₂; and

FIG. 9 is a flowchart of a software implementation of another method of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIGS. 2-5, the invention in this disclosure concerns a novel method to estimate a range to a moving rigid body 10 from a mobile platform 12 using monocular passive cameras 14 such as electro-optical or infra-red camera mounted on the platform 12. The primary application of the proposed technology is in the area of collision detection and avoidance for unmanned vehicles. Unmanned aerial, surface and ground vehicles equipped with cameras can use the proposed invention to estimate the range to other moving objects in their vicinity. As illustrated in FIG. 2, the exemplary embodiment shows an unmanned aerial vehicle (UAV) 12 (moving platform) estimating range to a civilian aircraft 10 (moving rigid body/intruder). The range information can then be used to determine the trajectory of the moving objects and maintain a safe distance from them.

Generally the invention is implemented in a computerized system 16 including a CPU 18, memory 20 and a camera mounted on the platform 12. The system 16 communicates with the vehicles navigation system and receives inputs from the vehicles global positioning system/inertial measurement unit (GPS/IMU) 22. The estimated range derived from the system 16 can be output back to the navigation system for avoidance measures or output to a display 24.

The invention is described in detail herein. In Section 1, there are described some preliminary notions that are used throughout the document. In Section 2, there are presented some novel mathematical results which form the basis of the invention. In Section 3, the monocular passive ranging (MPR) method is described. In Section 4, there is described a novel image processing algorithm which can be used as a module of the MPR algorithm when the rigid body to which the range is to be estimated is an aircraft. In Section 5, another variant of the MPR method is described.

1. Preliminaries

In this section, we describe concepts and notation to be used throughout this document. For any time t, let the positions of two feature points on the intruder be (x₁(t), y₁(t), z₁(t)) and (x₂(t), y₂(t), z₂(t)) respectively, where x₁(t), y₁(t), z₁(t), x₂(t), y₂(t), z₂(t)ε

, where

is the set of real numbers. Here the coordinates are measured with respect to a fixed global frame of reference. Let the position of the sensor be (x_(s)(t), y_(s)(t), z_(s)(t)), where again x_(s)(t), y_(s)(t), z_(s)(t)ε

. Let r_(i)(t)ε

³ be the position vector of feature point i with respect to the sensor at time t, where iε{1,2}. In other words, we have, r _(i)(t): =[x _(i)(t)−x _(s)(t)y _(i)(t)−y _(s)(t)z _(i)(t)−z _(s)(t)] Given a vector Xε

^(N), let ∥X∥ denote the Euclidean norm of the vector. We let X(t)^((n)) denote the nth derivative of X(t) with respect to time, assuming that the nth derivative exists. For notational convenience, we also assume that X(t)⁽⁰⁾ is equivalent to X(t). We will also use ∥X{dot over (()}t)∥ as an alternate representation of ∥X(t)∥⁽¹⁾. Similarly, we let ∥X(t)∥^((n)) denote the nth derivative of ∥X(t)∥ with respect to time. In what follows, for simplicity we shall omit the dependence on time wherever it is clear from the context.

2. Novel Mathematical Conditions for Maneuverless Monocular Passive Ranging

In this section, we present the results on the observability of the intruder states. Intuitively speaking, an intruder state is said to be observable if the state can estimated from the available measurements. In particular, we are interested in observing the range to the intruder at a given time.

Lemma 1.

Let the intruder be a rigid body undergoing a pure translational motion. Let (x₁(t), y₁(t), z₁(t)) and (x₂(t), y₂(t), z₂(t)) be the locations of two points on the intruder at time t. Assuming that the motion is sufficiently smooth for the first order derivatives to exist, we have {dot over (x)}={dot over (x)}₂; {dot over (y)}₁={dot over (y)}₂; ż₁=ż₂.

The proof is a straightforward consequence of the fact that the body is rigid and undergoes no rotation. We are now ready to state our main results on observability. The results are summarized by the following theorems.

Theorem 1.

Let (x(t), y(t), z(t)) represent the trajectory of a given point on a mobile rigid intruder at time t. Likewise, let (x_(s)(t), y_(s)(t), z_(s)(t)) represent the trajectory of the sensor. Let r(t) denote the vector (x(t)−x_(s)(t), y(t)−y_(s)(t), z(t)−z_(s)(t)). Let the measurement vector be defined by h(t):=r(t)/||r(t)|| and let h_(x)(t), h_(y)(t) and h_(z)(t) denote the three components of h(t). Let the following conditions be true:

-   -   (i) there exists a positive integer N≧2 such that r(t)^((i))         exists for all t and for all i ε {1, . . . , 2N−2};     -   (ii) r(t)^((N)) is equal to zero.     -   (iii) h_(x) ^((i)), h_(y) ^((i)) and h_(z) ^((i)) are non zero         for all i ε {0, . . . , N−2}.     -   Then the quantity ||r(t)||⁽¹⁾/||r(t)|| is observable if the         following conditions are true at time t.

$\begin{matrix} {{\frac{h_{x}^{(1)}}{h_{y}^{(1)}} \neq \frac{h_{x}}{h_{y}}},} & (i) \end{matrix}$ and

-   -   (ii) for N>2 there does not exist a set of real numbers {α₁, . .         . , α_(N−2)} with at least one of them not equal to zero such         that both the following conditions are true:

$\begin{matrix} {{h_{x}^{({N - 1})} = {\sum\limits_{i = 1}^{N - 2}{h_{x}^{({N - 1 - i})}\alpha_{i}}}},} & (1) \end{matrix}$

$\begin{matrix} {h_{y}^{({N - 1})} = {\sum\limits_{i = 1}^{N - 2}{h_{x}^{({N - 1 - i})}{\alpha_{i}.}}}} & (2) \end{matrix}$

Theorem 2.

Let (x₁(t), y₁(t), z₁(t)) and (x₂(t), y₂(t), z₂(t)) be the locations of two points on a mobile rigid intruder at time t. Let the rigid body's motion be purely translational. Let[u_(s)(t) v_(s)(t) w_(s)(t)] and [u(t) v(t) w(t)] be the velocity vectors of the sensor and the intruder at time t. Let R ε SO(3) be a rotation matrix such that (1/||[u(t) v(t) w(t)]||)[u(t) v(t) w(t)]^(T)=(1/||[x₁(t)−x₂(t) y₁(t) −y₂(t) z₁(t)−z₂(t)]||)R[x₁(t)−x₂(t) y₁(t)−y₂(t) z₁(t)−z₂(t)]^(T). Let r_(i)(t) denote the vector (x_(i)(t)−x_(s)(t), y_(i)(t)−y_(s)(t), z_(i)(t)−z_(s)(t)) for i ε {1,2}. Let the measurements be given by h_(i)(t):=r_(i)(t)/||r_(i)t|| for i ε {l,2}. Let h_(i) _(x) , h_(i) _(y) and h_(i) _(z) denote the x, y and z components of h_(i). Suppose that the following conditions hold:

-   -   (i)

$\frac{{r_{1}}^{(1)}}{r_{1}}$ is observable;

-   -   (ii)

${{\overset{.}{\beta}}_{2} \neq {0\mspace{14mu}{and}\mspace{14mu}\gamma_{2}} \neq {\pi/2}},{{{{where}\mspace{14mu}\beta_{i}} = {{{arc}\;\tan\frac{h_{i_{x}}}{h_{i_{y}}}\mspace{14mu}{and}\mspace{14mu}\gamma_{i}} = {\arctan\frac{h_{i_{z}}}{\sqrt{\left( {h_{i_{x}}^{2} + h_{i_{y}}^{2}} \right)}}}}};}$

-   -   (iii) The rotation matrix R is known; and     -   (iv) The velocity of the sensor is non-zero.     -   Then, the states of the intruder are observable as long as the         vectors [u_(s)(t) v_(s)(t) w_(s)(t)] and [u(t) v(t) w(t)] are         not parallel.

Theorem 3.

Let the intruder be a rigid body undergoing a translation motion. Let (x₁(t), y₁(t), z₁(t)) and (x₂(t), y₂(t), z₂(t)) be the locations of two feature points on the intruder at time t. Let [u_(s)(t) v_(s)(t) w_(s)(t)] and [u(t) v(t) w(t)] be the velocity vector of the sensor and the intruder at time t. Let α ε [0, π/2] be the angle between the vectors [u(t) v(t) w(t)] and [x₁(t)−x₂(t) y₁(t)−y₂(t) z₁(t)−z₂(t)]. For parallel vectors, we assume that α=0 and for perpendicular vectors α=π/2.

-   -   Suppose that the following conditions hold:     -   (i)

$\frac{{r_{1}}^{(1)}}{r_{1}}$ is observable;

-   -   (ii) β₂≠0, and y₂≠π/2;     -   (iii) The angle α is known; and     -   (iv) The velocity of the sensor is non-zero.     -   Then, the following statements hold true.     -   (i) If α=0 and (u_(s), v_(s), w_(s)) is not parallel to the         vector (x₁−x₂, y₁−y₂, z₁−z₂), then the intruder states are         observable;     -   (ii) If α=π/2 and the vector (u_(s), v_(s), w_(s)) is not         perpendicular to the vector (x₁−x₂, y₁−y₂, z₁−z₂), then the         intruder states are observable;

One of the critical assumptions in the above theorem is that (u_(s), v_(s), w_(s)) is not parallel or perpendicular to the vector (x₁−x₂, y₁−y₂, z₁−z₂). This again corresponds to events that are highly improbable Now that we have established the mathematical conditions for the range to an intruder to be observable, we present a novel monocular passive ranging method that does not require the sensor platform to maneuver.

3. A novel maneuverless monocular passive ranging (MPR) method

In this section, a novel MPR method based on the applications of Theorem 1 and Theorems 2 and 3 is described. We assume that there is a mobile platform containing a passive monocular camera system as the sensor. The sensor system is used to detect the presence of the other moving objects 10 in the vicinity and estimate the range to the objects. (See FIGS. 4 and 5) A number of algorithms for detection of objects in images have been proposed in the prior art and we assume that a suitable algorithm is available for use with our proposed invention- our invention concerns the estimation of range to a moving object (intruder) once it has been detected. The following steps describe our method assuming that detection has been accomplished and that there is no noise in any of the measurements.

(i) Get the pixel locations (i₁, j₁) and (i₂, j₂) of two feature points in the image of the intruder, denoted for short by p₁ and p₂, respectively, such that either (1) the rotation matrix R is known or (2) the angle α is known and is equal to either 0 or π/2 radians The matrix R is defined in Theorem 2 (See FIG. 6 - Case 1). The angle α as defined in Theorem 3 is equal to 0 or π/2 (See FIG. 7 - Case 2).

(ii) Assume a suitable value of N, where N is a positive integer such that r₁ ^((N))=0 is a good approximation of the dynamics of the spatial location of feature point p₁ on the intruder.

(iv) Measure the angles β₁, β₂, γ₁ and γ₂ where the quantities are defined in Theorem 2. This can be accomplished by knowing the intrinsic parameters of the camera (focal length, field of view and the camera mounting angle), the extrinsic parameters of the camera (yaw, pitch and roll angles of the sensor platform obtained from the onboard IMU) and the locations p₁ and p ₂ in the image plane. This is equivalent to the measurement of h_(x) ₁ , h_(y) ₁ , h_(z) ₁ , h_(x) ₂ , h_(y) ₂ , and h_(z) ₂ where h_(x) _(i) , h_(y) _(i) and h_(z) _(i) are the x, y and z components of r_(i)/∥r_(i)∥.

(v) Estimate the first 2N−3 derivatives of h_(x) _(i) , h_(y) _(i) and h_(z) _(i) using the current value of h_(x) _(i) , h_(y) _(i) and h_(z) _(i) and their past values stored in the memory 20 Use the constructive proof of Theorem 1 to estimate ∥r₁∥⁽¹⁾/∥r₁∥. Notice that N≧2 because N=1 implies that the range is constant.

(vi) Now we know ∥r₁∥⁽¹⁾/∥r₁∥ and the first derivatives of β₁, β₂, γ₁ and γ₂. Depending on whether we know R or whether we know that α is 0 or π/2 radians, use the method in the proofs of Theorem 2 and Theorem 3 respectively to estimate ∥r₁∥.

In a practical situation, measurements are always corrupted by noise. In such cases, a recursive filter implementation, such as the Extended Kalman Filter, can be used to estimate the range and other states of the intruder.

For ease of reference of the reader, the equations of dynamics and measurements for a Recursive Filter Implementation for Cases 1 and 2 are laid out below.

Recursive Filter Implementation for Section 3—Case (1)

Dynamics Equations

     x₁^((N) ) − x_(s)^((N)) = 0, y₁^((N)) − y_(s)^((N)) = 0, z₁^((N)) − z_(s)^((N)) = 0      x₂^((N) ) − x_(s)^((N)) = 0, y₂^((N)) − y_(s)^((N)) = 0, z₂^((N)) − z_(s)^((N)) = 0      x₁^((i)) = x₂^((i)), 1 ≤ i ≤ N      y₁^((i)) = y₂^((i)), 1 ≤ i ≤ N      z₁^((i)) = z₂^((i)), 1 ≤ i ≤ N u(R₂₁(x₂ − x₁) + R₂₂(y₂ − y₁) + R₂₃(z₂ − z₁)) = v(R₁₁(x₂ − x₁) + R₁₂(y₂ − y₁) + R₁₃(z₂ − z₁)) u(R₃₁(x₂ − x₁) + R₃₂(y₂ − y₁) + R₃₃(z₂ − z₁)) = w(R₁₁(x₂ − x₁) + R₁₂(y₂ − y₁) + R₁₃(z₂ − z₁)) Here N is a suitable positive integer, the superscript (N) denotes the Nth derivative with respect to time, u=x₁ ⁽¹⁾, v=y₁ ⁽¹⁾, w=z₁ ⁽¹⁾ and R_(ij) is the ij element of the rotation matrix R, and (x_(s),y_(s),z_(s)) is the 3D position of the sensor platform. Measurement Equations

$\beta_{1} = {\arctan\;\frac{h_{1_{x}}}{h_{1_{y}}}}$ $\beta_{2} = {\arctan\;\frac{h_{2_{x}}}{h_{2_{y}}}}$ $\gamma_{1} = {\arctan\;\frac{h_{1_{z}}}{\sqrt{\left( {h_{1_{x}}^{2} + h_{1_{y}}^{2}} \right)}}}$ $\gamma_{2} = {\arctan\;\frac{h_{2_{z}}}{\sqrt{\left( {h_{2_{x}}^{2} + h_{2_{y}}^{2}} \right)}}}$ where

$h_{1_{x}} = \frac{x_{1} - x_{s}}{\sqrt{\left( {x_{1} - x_{s}} \right)^{2} + \left( {y_{1} - y_{s}} \right)^{2} + \left( {z_{1} - z_{s}} \right)^{2}}}$ $h_{1_{y}} = \frac{y_{1} - y_{s}}{\sqrt{\left( {x_{1} - x_{s}} \right)^{2} + \left( {y_{1} - y_{s}} \right)^{2} + \left( {z_{1} - z_{s}} \right)^{2}}}$ $h_{1_{z}} = \frac{z_{1} - z_{s}}{\sqrt{\left( {x_{1} - x_{s}} \right)^{2} + \left( {y_{1} - y_{s}} \right)^{2} + \left( {z_{1} - z_{s}} \right)^{2}}}$ $h_{2_{x}} = \frac{x_{2} - x_{s}}{\sqrt{\left( {x_{2} - x_{s}} \right)^{2} + \left( {y_{2} - y_{s}} \right)^{2} + \left( {z_{2} - z_{s}} \right)^{2}}}$ $h_{2_{y}} = \frac{y_{2} - y_{s}}{\sqrt{\left( {x_{2} - x_{s}} \right)^{2} + \left( {y_{2} - y_{s}} \right)^{2} + \left( {z_{2} - z_{s}} \right)^{2}}}$ $h_{2_{z}} = \frac{z_{2} - z_{s}}{\sqrt{\left( {x_{2} - x_{s}} \right)^{2} + \left( {y_{2} - y_{s}} \right)^{2} + \left( {z_{2} - z_{s}} \right)^{2}}}$ Knowing the dynamics and the measurement equations, standard non-linear filtering techniques such as the Extended Kalman Filter can be implemented to get an estimate of the states (x₁, y₁, z₁), (x₂, y₂, z₂), and (u, v, w). Let the estimates be denoted by ({circumflex over (x)}₁, ŷ₁, {circumflex over (z)}₁), ({circumflex over (x)}₂, ŷ₂, {circumflex over (z)}₂), and (û, {circumflex over (v)}, ŵ). Once these states are estimated, the estimated range is given as follows:

$r^{est} = \sqrt{\left( {\frac{{\hat{x}}_{1} + {\hat{x}}_{2}}{2} - x_{s}} \right)^{2} + \left( {\frac{{\hat{y}}_{1} + {\hat{y}}_{2}}{2} - y_{s}} \right)^{2} + \left( {\frac{{\hat{z}}_{1} + {\hat{z}}_{2}}{2} - z_{s}} \right)^{2}}$ $V^{est} = \sqrt{{\hat{u}}^{2} + {\hat{v}}^{2} + {\hat{w}}^{2}}$ Recursive Filter Implementation for Section 4.3—Case (2) and for Section 5 (Below) Dynamics Equations

x₁^((N) ) − x_(s)^((N)) = 0, y₁^((N)) − y_(s)^((N)) = 0, z₁^((N)) − z_(s)^((N)) = 0 x₂^((N) ) − x_(s)^((N)) = 0, y₂^((N)) − y_(s)^((N)) = 0, z₂^((N)) − z_(s)^((N)) = 0 x₁^((i)) = x₂^((i)), 1 ≤ i ≤ N y₁^((i)) = y₂^((i)), 1 ≤ i ≤ N z₁^((i)) = z₂^((i)), 1 ≤ i ≤ N If α=0 radians, then: v(x ₂ −x ₁)=u(y ₂ −y ₁) w(y ₂ −y ₁)=v(z ₂ −z ₁) If α=π/2 radians, then: u(x ₂ −x ₁)+v(y ₂ −y ₁)+w(z ₂ −z ₁)=0. Here N is a suitable positive integer, the superscript (N) denotes the Nth derivative with respect to time, u=x₁ ⁽¹⁾, v=y₁ ⁽¹⁾, w=z₁ ⁽¹⁾ and (x_(s),y_(s),z_(s)) is the 3D position of the sensor platform. Measurement Equations

$\beta_{1} = {\arctan\;\frac{h_{1_{x}}}{h_{1_{y}}}}$ $\beta_{2} = {\arctan\;\frac{h_{2_{x}}}{h_{2_{y}}}}$ $\gamma_{1} = {\arctan\;\frac{h_{1_{z}}}{\sqrt{\left( {h_{1_{x}}^{2} + h_{1_{y}}^{2}} \right)}}}$ $\gamma_{2} = {\arctan\;\frac{h_{2_{z}}}{\sqrt{\left( {h_{2_{x}}^{2} + h_{2_{y}}^{2}} \right)}}}$ where

$h_{1_{x}} = \frac{x_{1} - x_{s}}{\sqrt{\left( {x_{1} - x_{s}} \right)^{2} + \left( {y_{1} - y_{s}} \right)^{2} + \left( {z_{1} - z_{s}} \right)^{2}}}$ $h_{1_{y}} = \frac{y_{1} - y_{s}}{\sqrt{\left( {x_{1} - x_{s}} \right)^{2} + \left( {y_{1} - y_{s}} \right)^{2} + \left( {z_{1} - z_{s}} \right)^{2}}}$ $h_{1_{z}} = \frac{z_{1} - z_{s}}{\sqrt{\left( {x_{1} - x_{s}} \right)^{2} + \left( {y_{1} - y_{s}} \right)^{2} + \left( {z_{1} - z_{s}} \right)^{2}}}$ $h_{2_{x}} = \frac{x_{2} - x_{s}}{\sqrt{\left( {x_{2} - x_{s}} \right)^{2} + \left( {y_{2} - y_{s}} \right)^{2} + \left( {z_{2} - z_{s}} \right)^{2}}}$ $h_{2_{y}} = \frac{y_{2} - y_{s}}{\sqrt{\left( {x_{2} - x_{s}} \right)^{2} + \left( {y_{2} - y_{s}} \right)^{2} + \left( {z_{2} - z_{s}} \right)^{2}}}$ $h_{2_{z}} = \frac{z_{2} - z_{s}}{\sqrt{\left( {x_{2} - x_{s}} \right)^{2} + \left( {y_{2} - y_{s}} \right)^{2} + \left( {z_{2} - z_{s}} \right)^{2}}}$ Knowing the dynamics and the measurement equations, standard non-linear filtering techniques such as the Extended Kalman Filter can be implemented to get an estimate of the states (x₁, y₁, z₁), (x₂, y₂, z₂), and (u, v, w). Let the estimates be denoted by ({circumflex over (x)}₁, ŷ₁, {circumflex over (z)}₁), ({circumflex over (x)}₂, ŷ₂, {circumflex over (z)}₂), and (û, {circumflex over (v)}, ŵ). Once these states are estimated, the estimated range is given as follows. If α=0 radians, then:

$r_{\alpha = 0}^{est} = \sqrt{\left( {\frac{{\hat{x}}_{1} + {\hat{x}}_{2}}{2} - x_{s}} \right)^{2} + \left( {\frac{{\hat{y}}_{1} + {\hat{y}}_{2}}{2} - y_{s}} \right)^{2} + \left( {\frac{{\hat{z}}_{1} + {\hat{z}}_{2}}{2} - z_{s}} \right)^{2}}$ $V_{\alpha = 0}^{est} = \sqrt{{\hat{u}}^{2} + {\hat{v}}^{2} + {\hat{w}}^{2}}$ If α=π/2 radians, then:

$r_{\alpha = {\pi/2}}^{est} = \sqrt{\left( {\frac{{\hat{x}}_{1} + {\hat{x}}_{2}}{2} - x_{s}} \right)^{2} + \left( {\frac{{\hat{y}}_{1} + {\hat{y}}_{2}}{2} - y_{s}} \right)^{2} + \left( {\frac{{\hat{z}}_{1} + {\hat{z}}_{2}}{2} - z_{s}} \right)^{2}}$ $V_{\alpha = {\pi/2}}^{est} = \sqrt{{\hat{u}}^{2} + {\hat{v}}^{2} + {\hat{w}}^{2}}$

4. Image Processing for Feature Point Identification in Aircraft Images

In the previous section, there is described a monocular passive ranging method. In step (i) of the method, two feature points on the intruder are identified such that the the rotation matrix R is known or that the angle α is known and is equal to either 0 or π/2 radians. In this section, a novel method to identify two feature points such that the angle α is equal to either 0 or π/2 radians is described. The method also provides an algorithm to check if the angle α is equal to 0 or π/2 radians. This method is applicable to the case when the intruder is an aircraft. A software implementation is laid out in FIG. 8. The basic steps involved are as follows.

(i) Extraction of the intruder aircraft silhouette. FIGS. 4 and 5 demonstrate the silhouettes extracted by our algorithm on two sample images of commercial airliners downloaded from the internet. The left images show the original images whereas the right images show the respective silhouettes.

(ii) Extraction of the two principal components of the silhouette. In order to extract the principal components, a line searching method similar to Hough transform is used. For this method, the binary aircraft silhouette image is used. First the straight line L₁ which contains the maximum number of silhouette pixels is estimated. This serves as the longer principal component. We also estimate a second principal component. This is defined as the straight line L₂ that contains the maximum number of silhouette pixels subject to the condition that it makes an angle of greater than 45 degree with the longer principal component. This approach has been observed to yield better results than more traditional principal component analyses approaches such as Singular Value Decomposition.

In FIGS. 4 and 5 (right image), the two principal components are indicated by the lines L₁ and L₂ on the silhouette. The end points L_(1a), L_(1b) of the longer primary principal component correspond to either the end points of the fuselage (nose and tail) or to the wing tips. For example, in FIG. 4 (top right), the end points of the longer principal component line correspond to the head and the tail of the aircraft, whereas the end points L_(1a), L_(1b) of the longer principal component in FIG. 5 correspond to the two wing tips of the aircraft.

(iii) Computation of the normalized distance between the point of intersection of the two principal components and the centroid of the silhouette. For example, in FIG. 4, the point of intersection of the two principal components is indicated by an asterisk, and the centroid of the silhouette is indicated by a circle. The normalized distance is defined as the distance between the asterisk and the circle normalized by the length of the longer principal component which in this case is the length of line L₁ in the silhouette. The normalized distance can be used to check whether the end points correspond to the end points of the fuselage or to the wing tips or neither. The intuition is that if the end points are on the fuselage then the normalized distance should be larger than if the end points are the wing tips.

(iv) Creation of a training data set from images for which the identity of the end points of the longer principal component is known. For this data set, the normalized distances are computed. We downloaded 50 aircraft images from the internet—25 corresponding to the case where the end points are on the fuselage and the remaining 25 corresponding to the case where the end points are the wing tips. The normalized distances are extracted for each of the images in the training data set. It is observed that these distances can be clustered into two intervals, [0,0.3] and [0.5,1]. The former and the latter intervals correspond to the wing tips and the fuselage images respectively. This is in accordance with our intuition.

(v) Comparison of the extracted normalized distances in the test images with the normalized distances in the training data. For robust classification, instead of using a single test image we use a sequence of consecutive images, compute the normalized distances for each of the images, and then perform statistical T-tests to test the hypotheses of whether the mean of the normalized distances in the sequence of the test images is greater than 0.5 or less than 0.3. If the hypothesis that the mean is greater than 0.5 is true, then this implies that for the images in the sequence the end points correspond to the fuselage or equivalently that α is equal to zero radians. If the other hypothesis is true then it implies that the end points correspond to the wing tips or that α is equal to π/2 radians.

5. Likelihood Testing Based Range Estimation

In this section, another method for estimating the range to the intruder is described. The difference of this method from the method in Section 3 Case 2 (See FIG. 6—Case 2) is that we only need to know that the angle α is either 0 or π/2 radians but it is not required to know which one of the two it is. A software implementation is laid out in FIG. 9. The sensor system is used to detect the presence of the other moving objects 10 in the vicinity and estimate the range to the objects. (See FIGS. 4 and 5) A number of algorithms for detection of objects in images have been proposed in the prior art and we assume that a suitable algorithm is available for use with our proposed invention—our invention concerns the estimation of range to a moving object (intruder) once it has been detected. The following steps describe our method assuming that detection has been accomplished and that there is no noise in any of the measurements.

(i) Get the pixel locations (i₁,j₁) and (i₂,j₂) of two feature points in the image of the intruder, denoted for short by p₁ and p₂, respectively, such that the angle α is equal to either 0 or π/2 radians but it is not known which one of the two it is. If the intruder is an aircraft, steps (i) and (ii) of the method in Section 4 can be used to find the end points of the longer principal component of the silhouette of the intruder in the image. These end points serve as points p₁ and p₂.

(ii) Assuming the angle α is equal to zero, estimate the range to the intruder by application of the method described in Section 3. Once the range to the intruder is estimated, other states such as the range rate can also be estimated since ∥r(t)∥⁽¹⁾/∥r(t)∥ is observable according to Theorem 1. Using the knowledge of the bearing angles, and bearing angle derivatives, estimate the velocity of the intruder. Let the estimated range and magnitude of the velocity of the intruder be denoted by r_(α=0) ^(est) and V_(α=0) ^(est).

(iii) Assuming the angle α is equal to π/2, estimate the range and range rate of the intruder. Using the knowledge of the bearing angles, and bearing angle derivatives, estimate the velocity of the intruder. Let the estimated range and magnitude of the velocity of the intruder be denoted by r_(α=π/2) ^(est) and V_(α=π/2) ^(est).

(iv) Let p_(range)(r_(α=0) ^(est)) be the likelihood of the range estimate being equal to r_(α=0) ^(est) based on prior sensor detection ranges. For example, if r_(α=0) ^(est) is equal to 10 nautical miles and the sensor detection range can never be more than 5 nautical miles, then the likelihood p_(range)(r_(α=0) ^(est)) should be small. Likewise, if r_(α=0) ^(est) is a small value then too the likelihood p_(range)(r_(α=0) ^(est)) should be small because then the intruder should have been detected earlier. Likewise, let p_(range)(r_(α=π/2) ^(est)) be the likelihood of the range estimate being equal to r_(α=π/2) ^(est). Similarly, one can estimate likelihoods p_(speed)(V_(α=0) ^(est)) and speed (V_(α=π/2) ^(est)) based on typical speeds of the intruders in the domain of operation.

(v) If

$\frac{{p_{range}\left( r_{\alpha = 0}^{est} \right)}{p_{speed}\left( V_{\alpha = 0}^{est} \right)}}{{p_{range}\left( r_{\alpha = {\pi/2}}^{est} \right)}{p_{speed}\left( V_{\alpha = {\pi/2}}^{est} \right)}}$ is greater than a certain threshold M then a is equal to 0 and the correct range estimate is r_(α=0) ^(est).

If, on the other hand,

$\frac{{p_{range}\left( r_{\alpha = 0}^{est} \right)}{p_{speed}\left( V_{\alpha = 0}^{est} \right)}}{{p_{range}\left( r_{\alpha = {\pi/2}}^{est} \right)}{p_{speed}\left( V_{\alpha = {\pi/2}}^{est} \right)}}$ is less than a certain threshold m then a is equal to π/2 and the correct range estimate is r_(α=π/2) ^(est).

The previous method requires the knowledge of the likelihood functions. Any suitable likelihood function can be used as long as it satisfied two properties. First, it should be a positive real valued function. Second, the function must assume a strictly greater value for an argument that is more likely to occur than another argument that is less likely to occur. The particular choice of the likelihood function depends on the needs of the user and domain of operation. For example, for use in an unmanned aircraft collision avoidance application, the likelihood functions should be designed after a careful study of the types of intruder aircraft operating in the airspace and their performance capabilities as well as the type of passive sensor being used. Likewise, the thresholds M and m are tunable design parameters and should be chosen based on the application scenario and system objectives.

It can therefore be seen that the present invention provides a maneuverless passive ranging method which is based on extracting feature points on a detected object and assuming a direction of movement based on those selected feature points. For these reasons, the instant invention is believed to represent a significant advancement in the art which has substantial commercial merit.

While there is shown and described herein certain specific structure embodying the invention, it will be manifest to those skilled in the art that various modifications and rearrangements of the parts may be made without departing from the spirit and scope of the underlying inventive concept and that the same is not limited to the particular forms herein shown and described except insofar as indicated by the scope of the appended claims. 

What is claimed is:
 1. In a computerized system including a camera mounted on a moving vehicle, a maneuverless, passive method for determining a range of a foreign moving object from said moving vehicle, wherein said foreign moving object is not part of said computerized system, the method comprising the steps of: acquiring with said camera, consecutively in real time, a plurality of images of said foreign moving object wherein no positional data is received from said foreign moving object; detecting said foreign moving object within each of said plurality of images; identifying two feature points p₁ and p₂ on said detected object within each of said plurality images, where p₁ and p₂ are utilized to determine a direction of travel of said detected object and where p₁ and p₂ satisfy a predetermined geometric relationship with a velocity vector of said detected object; and recursively calculating the range of said detected object based on changes in the positions of the feature points p₁ and p₂ in the sequential images and further based on said predetermined geometric relationship without any positional data being received from said detected object and without any assumptions of position or movement of the detected object based on background references.
 2. The method of claim 1 wherein said predetermined geometric relationship comprises an assumption that the detected object is traveling in a direction along a line connecting feature points p₁ and p₂.
 3. The method of claim 2 wherein said predetermined geometric relationship further comprises an assumption that the two feature points represent a leading point of the detected object and a trailing point of the detected object.
 4. The method of claim 2 wherein said step of identifying said feature points p₁ and p₂ comprises the step of determining pixel locations (i₁,j₁) and (i₂,j₂) of said feature points p₁ and p₂ within said image, and said step of recursively calculating said range includes converting said pixel locations to relative azimuth and elevation angles denoted by β₁, β₂, γ₁, γ₂.
 5. The method of claim 1 wherein said predetermined geometric relationship comprises an assumption that the two feature points represent a leading point of the detected object and a trailing point of the detected object.
 6. The method of claim 5 wherein said step of identifying said feature points p₁ and p₂ comprises the step of determining pixel locations (i₁,j₁) and (i₂,j₂) of said feature points p₁ and p₂ within said image, and said step of recursively calculating said range includes converting said pixel locations to relative azimuth and elevation angles denoted by β₁, β₂, γ₁, γ₂.
 7. The method of claim 1 wherein said step of identifying said feature points p₁ and p₂ comprises the step of determining pixel locations (i₁,j₁) and (i₂,j₂) of said feature points p₁ and p₂ within said image, and said step of recursively calculating said range includes converting said pixel locations to relative azimuth and elevation angles denoted by β₁, β₂, γ₁, γ₂.
 8. In a computerized system including a camera mounted on a moving vehicle, wherein the camera acquires consecutively in real time a plurality of images of a moving object within a field of view of the camera, a method for determining a range of said moving object from said moving vehicle, the method comprising the steps of: detecting said moving object within each of said plurality of images; identifying two feature points p₁ and p₂ on said detected object where p₁ and p₂ satisfy a predetermined geometric relationship with a velocity vector of said detected object, said step of identifying said feature points p₁ and p₂ further comprising the step of determining pixel locations (i₁,j₁) and (i₂,j₂) of said feature points p₁ and p₂ within said image; and recursively calculating the range of said object based on changes in the positions of the feature points p₁ and p₂ in the sequential images and further based on said predetermined geometric relationship, said step of recursively calculating said range further comprising the step of converting said pixel locations to relative azimuth and elevation angles denoted by β₁, β₂, γ₁, γ₂, and wherein the step of recursively calculating said range comprises recursively calculating said range where a rotation matrix R is known and the following conditions are defined: (x₁, y₁, z₁) and (x₂, y₂, z₂) represent 3D locations of said feature points (i₁,j₁) and (i₂,j₂); [u, v, w] represents a 3D velocity vector of the object; and rotation matrix RεS0(3) is such that (1/∥[u v w]∥)[u v w]^(T)=(1/∥[x₁−x₂ y₁−y₂ z₁−z₂]∥)R[x₁−x₂ y₁−y₂ z₁−z₂]^(T).
 9. In a computerized system including a camera mounted on a moving vehicle, wherein the camera acquires consecutively in real time a plurality of images of a moving object within a field of view of the camera, a method for determining a range of said moving object from said moving vehicle, the method comprising the steps of: detecting said moving object within each of said plurality of images; identifying two feature points p₁ and p₂ on said detected object where p₁ and p₂ satisfy a predetermined geometric relationship with a velocity vector of said detected object, said step of identifying said feature points p₁ and p₂ further comprising the step of determining pixel locations (i₁,j₁) and (i₂,j₂) of said feature points p₁ and p₂ within said image; and recursively calculating the range of said object based on changes in the positions of the feature points p₁ and p₂ in the sequential images and further based on said predetermined geometric relationship, said step of recursively calculating said range further comprising the step of converting said pixel locations to relative azimuth and elevation angles denoted by β₁, β₂, γ₁, γ₂, and wherein the step of recursively calculating said range comprises recursively calculating said range where an angle α is known and is equal to either 0 or π/2 radians, and the following conditions are defined: (x₁, y₁, z₁) and (x₂, y₂, z₂) represent 3D locations of said feature points (i₁,j₁) and (i₂,j₂); [u, v, w] represents a 3D velocity vector of the object; and angle α is the angle between the vectors [u v w] and [x₁−x₂ y₁−y₂ z₁−z₂].
 10. In the method of claim 9, said step of determining pixel locations (i₁,j₁) and (i₂,j₂) comprising the steps of: extracting a silhouette of said object comprising a plurality of pixels associated with said detected object; extracting a first principal component of said silhouette comprising a first, longer straight line containing a maximum number of said pixels associated with said detected object where (i₁,j₁) and (i₂,j₂) comprise pixel location end points of said first principal component; extracting a second principal component of said silhouette comprising a second, shorter straight line containing a maximum number of said pixels associated with said detected object where said second straight line makes an angle of greater than 45 degrees with said first straight line, and where (i₃,j₃) and (i₄,j₄) comprise pixel location end points of said shorter principal component; computing a centroid of said silhouette C(t_(n)); computing a point of intersection I(t_(n)) of said first principal components and said second principal component; computing a distance D(t_(n)) between C(t_(n)) and I(t_(n)) normalized by a length of said first principal component; using a statistical T-test on a sequence {D(t_(n-Q)), . . . , D(t_(n))} to test whether a mean of the normalized distances is greater than 0.5 or less than 0.3, wherein if the mean is greater than 0.5 then the angle α=0 and the pixel locations of the feature point are (i₁,j₁) and (i₂,j₂), and further wherein if the mean is less than 0.3 then the angle α=π/2 and the pixel location of the feature point are (i₃,j₃) and (i₄,j₄).
 11. In the method of claim 9, said step of recursively calculating said range comprises the steps of: recursively calculating said range wherein said angle α=0 to obtain an estimated range r_(α=0) ^(est) and an estimated velocity V_(α=0) ^(est) and computing likelihoods p_(range)(r_(α=0) ^(est)) and p_(speed)(V_(α=0) ^(est)); recursively calculating said range where said angle α=π/2 to obtain an estimated range r_(α=π/2) ^(est) and an estimated velocity V_(α=π/2) ^(est) and computing likelihoods p_(range)(r_(α=π/2) ^(est)) and p_(speed)(V_(α=π/2) ^(est)); and computing $L = \frac{{p_{range}\left( r_{\alpha = 0}^{est} \right)}{p_{speed}\left( V_{\alpha = 0}^{est} \right)}}{{p_{range}\left( r_{\alpha = {\pi/2}}^{est} \right)}{p_{speed}\left( V_{\alpha = {\pi/2}}^{est} \right)}}$ where if L is greater than a threshold M then angle α=0 and the correct range is r_(α=0) ^(est) and where if L is less than a threshold m then angle α=π/2 and the correct range is r_(α=π/2) ^(est).
 12. The method of claim 11 wherein M and m comprise positive real numbers such that m<M and M and wherein M and m are tunable design parameters.
 13. In a computerized system including a camera mounted on a moving vehicle, wherein the camera acquires consecutively in real time a plurality of images of a moving object within a field of view of the camera, a method for determining a range of said moving object from said moving vehicle, the method comprising the steps of: detecting said moving object within each of said plurality of images; identifying two feature points p₁ and p₂ on said detected object where p₁ and p₂ satisfy a predetermined geometric relationship with a velocity vector of said detected object, said predetermined geometric relationship comprising an assumption that the detected object is traveling in a direction along a line connecting feature points p₁ and p₂, said step of identifying said feature points p₁ and p₂ further comprising the step of determining pixel locations (i₁,j₁) and (i₂,j₂) of said feature points p₁ and p₂ within said image; and recursively calculating the range of said object based on changes in the positions of the feature points p₁ and p₂ in the sequential images and further based on said predetermined geometric relationship, said step of recursively calculating said range further comprising the step of converting said pixel locations to relative azimuth and elevation angles denoted by β₁, β₂, γ₁, γ₂, and wherein the step of recursively calculating said range comprises recursively calculating said range where a rotation matrix R is known and the following conditions are defined: (x₁, y₁, z₁) and (x₂, y₂, z₂) represent 3D locations of said feature points (i₁,j₁) and (i₂,j₂); [u, v, w] represents a 3D velocity vector of the object; and rotation matrix RεS0(3) is such that (1/∥[u v w]∥)[u v w]^(T)=(1/∥[x₁−x₂ y₁−y₂ z₁−z₂]∥)R[x₁−x₂ y₁−y₂ z₁−z₂]^(T).
 14. In a computerized system including a camera mounted on a moving vehicle, wherein the camera acquires consecutively in real time a plurality of images of a moving object within a field of view of the camera, a method for determining a range of said moving object from said moving vehicle, the method comprising the steps of: detecting said moving object within each of said plurality of images; identifying two feature points p₁ and p₂ on said detected object where p₁ and p₂ satisfy a predetermined geometric relationship with a velocity vector of said detected object, said predetermined geometric relationship comprising an assumption that the detected object is traveling in a direction along a line connecting feature points p₁ and p₂, said step of identifying said feature points p₁ and p₂ further comprising the step of determining pixel locations (i₁,j₁) and (i₂,j₂) of said feature points p₁ and p₂ within said image; and recursively calculating the range of said object based on changes in the positions of the feature points p₁ and p₂ in the sequential images and further based on said predetermined geometric relationship, said step of recursively calculating said range further comprising the step of converting said pixel locations to relative azimuth and elevation angles denoted by β₁, β₂, γ₁, γ₂, and wherein the step of recursively calculating said range comprises recursively calculating said range where an angle α is known and is equal to either 0 or π/2 radians, and the following conditions are defined: (x₁, y₁, z₁) and (x₂, y₂, z₂) represent 3D locations of said feature points (i₁,j₁) and (i₂,j₂); [u, v, w] represents a 3D velocity vector of the object; and angle α is the angle between the vectors [u v w] and [x₁−x₂ y₁−y₂ z₁−z₂].
 15. In the method of claim 13, said step of determining pixel locations (i₁,j₁) and (i₂,j₂) comprising the steps of: extracting a silhouette of said object comprising a plurality of pixels associated with said detected object; extracting a first principal component of said silhouette comprising a first, longer straight line containing a maximum number of said pixels associated with said detected object where (i₁,j₁) and (i₂,j₂) comprise pixel location end points of said first principal component; extracting a second principal component of said silhouette comprising a second, shorter straight line containing a maximum number of said pixels associated with said detected object where said second straight line makes an angle of greater than 45 degrees with said first straight line, and where (i₃,j₃) and (i₄,j₄) comprise pixel location end points of said shorter principal component; computing a centroid of said silhouette C(t_(n)); computing a point of intersection I(t_(n)) of said first principal components and said second principal component; computing a distance D(t_(n)) between C(t_(n)) and I(t_(n)) normalized by a length of said first principal component; using a statistical T-test on a sequence {D(t_(n-Q)), . . . , D(t_(n))} to test whether a mean of the normalized distances is greater than 0.5 or less than 0.3, wherein if the mean is greater than 0.5 then the angle α=0 and the pixel locations of the feature point are (i₁,j₁) and (i₂,j₂), and further wherein if the mean is less than 0.3 then the angle α=π/2 and the pixel location of the feature point are (i₃,j₃) and (i₄,j₄).
 16. In the method of claim 14, said step of recursively calculating said range comprises the steps of: recursively calculating said range wherein said angle α=0 to obtain an estimated range r_(α=0) ^(est) and an estimated velocity V_(α=0) ^(est) and computing likelihoods p_(range)(r_(α=0) ^(est)) and p_(speed)(V_(α=0) ^(est)); recursively calculating said range where said angle α=π/2 to obtain an estimated range r_(α=π/2) ^(est) and an estimated velocity V_(α=π/2) ^(est) and computing likelihoods p_(range)(r_(α=π/2) ^(est)) and p_(speed)(V_(α=π/2) ^(est)); and computing $L = \frac{{p_{range}\left( r_{\alpha = 0}^{est} \right)}{p_{speed}\left( V_{\alpha = 0}^{est} \right)}}{{p_{range}\left( r_{\alpha = {\pi/2}}^{est} \right)}{p_{speed}\left( V_{\alpha = {\pi/2}}^{est} \right)}}$ where if L is greater than a threshold M then angle α=0 and the correct range is r_(α=0) ^(est) and where if L is less than a threshold m then angle α=π/2 and the correct range is r_(α=π/2) ^(est).
 17. The method of claim 16 wherein M and m comprise positive real numbers such that m<M and M and wherein M and m are tunable design parameters.
 18. In a computerized system including a camera mounted on a moving vehicle, wherein the camera acquires consecutively in real time a plurality of images of a moving object within a field of view of the camera, a method for determining a range of said moving object from said moving vehicle, the method comprising the steps of: detecting said moving object within each of said plurality of images; identifying two feature points p₁ and p₂ on said detected object where p₁ and p₂ satisfy a predetermined geometric relationship with a velocity vector of said detected object, said predetermined geometric relationship comprising an assumption that the two feature points represent a leading point of the detected object and a trailing point of the detected object, said step of identifying said feature points p₁ and p₂ further comprising the step of determining pixel locations (i₁,j₁) and (i₂,j₂) of said feature points p₁ and p₂ within said image; and recursively calculating the range of said object based on changes in the positions of the feature points p₁ and p₂ in the sequential images and further based on said predetermined geometric relationship, said step of recursively calculating said range further comprising the step of converting said pixel locations to relative azimuth and elevation angles denoted by β₁, β₂, γ₁, γ₂, and wherein the step of recursively calculating said range comprises recursively calculating said range where a rotation matrix R is known and the following conditions are defined: (x₁, y₁, z₁) and (x₂, y₂, z₂) represent 3D locations of said feature points (i₁,j₁) and (i₂,j₂); [u, v, w] represents a 3D velocity vector of the object; and rotation matrix RεS0(3) is such that (1/∥[u v w]∥) [u v w]^(T)=(1/∥[x₁ x₂ y₁−y₂ z₁ z₂]∥)R[x₁ x₂ y₁−y₂ z₁−z₂]^(T).
 19. In a computerized system including a camera mounted on a moving vehicle, wherein the camera acquires consecutively in real time a plurality of images of a moving object within a field of view of the camera, a method for determining a range of said moving object from said moving vehicle, the method comprising the steps of: detecting said moving object within each of said plurality of images; identifying two feature points p₁ and p₂ on said detected object where p₁ and p₂ satisfy a predetermined geometric relationship with a velocity vector of said detected object, said predetermined geometric relationship comprising an assumption that the two feature points represent a leading point of the detected object and a trailing point of the detected object, said step of identifying said feature points p₁ and p₂ further comprising the step of determining pixel locations (i₁,j₁) and (i₂,j₂) of said feature points p₁ and p₂ within said image; and recursively calculating the range of said object based on changes in the positions of the feature points p₁ and p₂ in the sequential images and further based on said predetermined geometric relationship, said step of recursively calculating said range further comprising the step of converting said pixel locations to relative azimuth and elevation angles denoted by β₁, β₂, γ₁, γ₂, and wherein the step of recursively calculating said range comprises recursively calculating said range where an angle α is known and is equal to either 0 or π/2 radians, and the following conditions are defined: (x₁, y₁, z₁) and (x₂, y₂, z₂) represent 3D locations of said feature points (i₁,j₁) and (i₂,j₂); [u, v, w] represents a 3D velocity vector of the object; and angle α is the angle between the vectors [u v w] and [x₁−x₂ y₁−y₂ z₁−z₂].
 20. In the method of claim 19, said step of determining pixel locations (i₁,j₁) and (i₂,j₂) comprising the steps of: extracting a silhouette of said object comprising a plurality of pixels associated with said detected object; extracting a first principal component of said silhouette comprising a first, longer straight line containing a maximum number of said pixels associated with said detected object where (i₁,j₁) and (i₂,j₂) comprise pixel location end points of said first principal component; extracting a second principal component of said silhouette comprising a second, shorter straight line containing a maximum number of said pixels associated with said detected object where said second straight line makes an angle of greater than 45 degrees with said first straight line, and where (i₃,j₃) and (i₄,j₄) comprise pixel location end points of said shorter principal component; computing a centroid of said silhouette C(t_(n)); computing a point of intersection I(t_(n)) of said first principal components and said second principal component; computing a distance D(t_(n)) between C(t_(n)) and I(t_(n)) normalized by a length of said first principal component; using a statistical T-test on a sequence {D(t_(n-Q)), . . . , D(t_(n))} to test whether a mean of the normalized distances is greater than 0.5 or less than 0.3, wherein if the mean is greater than 0.5 then the angle α=0 and the pixel locations of the feature point are (i₁,j₁) and (i₂,j₂), and further wherein if the mean is less than 0.3 then the angle α=π/2 and the pixel location of the feature point are (i₃,j₃) and (i₄,j₄).
 21. In the method of claim 19, said step of recursively calculating said range comprises the steps of: recursively calculating said range wherein said angle α=0 to obtain an estimated range r_(α=0) ^(est) and an estimated velocity V_(α=0) ^(est) and computing likelihoods p_(range)(r_(α=0) ^(est) and p_(speed)(V_(α=0) ^(est)); recursively calculating said range where said angle α=π/2 to obtain an estimated range r_(α=π/2) ^(est) and an estimated velocity V_(α=π/2) ^(est) and computing likelihoods p_(range)(r_(α=π/2) ^(est)) and p_(speed)(V_(α=π/2) ^(est)); and computing $L = \frac{{p_{range}\left( r_{\alpha = 0}^{est} \right)}{p_{speed}\left( V_{\alpha = 0}^{est} \right)}}{{p_{range}\left( r_{\alpha = {\pi/2}}^{est} \right)}{p_{speed}\left( V_{\alpha = {\pi/2}}^{est} \right)}}$ where if L is greater than a threshold M then angle α=0 and the correct range is r_(α=0) ^(est) and where if L is less than a threshold m then angle α=π/2 and the correct range is r_(α=π/2) ^(est).
 22. The method of claim 21 wherein M and m comprise positive real numbers such that m<M and M and wherein M and m are tunable design parameters. 